#ifndef PROFILEEDITPAGE_H
#define PROFILEEDITPAGE_H

#include <QWidget>
#include <QLineEdit>
#include <QPushButton>

namespace Ui {
class ProfileEditPage;
}

/**
 * @brief 资料编辑页面类，处理用户资料编辑功能
 */
class ProfileEditPage : public QWidget
{
    Q_OBJECT

public:
    /**
     * @brief 构造函数，初始化资料编辑页面
     * @param parent 父窗口指针
     */
    explicit ProfileEditPage(QWidget *parent = nullptr);

    /**
     * @brief 析构函数，释放资源
     */
    ~ProfileEditPage();

    /**
     * @brief 设置当前用户信息
     * @param username 当前用户名
     * @param age 当前年龄
     */
    void setCurrentInfo(const QString &username, int age);

signals:
    /**
     * @brief 返回个人资料页面信号
     */
    void backToProfile();

    /**
     * @brief 保存资料信号，携带更新后的信息
     * @param username 新用户名
     * @param age 新年龄
     */
    void saveProfile(const QString &username, int age);

private slots:
    /**
     * @brief 保存按钮点击事件处理
     */
    void onSaveClicked();

    /**
     * @brief 返回按钮点击事件处理
     */
    void onBackClicked();

private:
    Ui::ProfileEditPage *ui;          ///< UI对象指针
    QLineEdit *m_usernameEdit;        ///< 用户名输入框
    QLineEdit *m_ageEdit;             ///< 年龄输入框
    QPushButton *m_saveBtn;           ///< 保存按钮
    QPushButton *m_backBtn;           ///< 返回按钮

    /**
     * @brief 初始化UI组件
     */
    void initUI();

    /**
     * @brief 验证编辑输入
     * @return 验证通过返回true，否则返回false
     */
    bool validateInput();
};

#endif // PROFILEEDITPAGE_H
